Skip to main content

SQL Details

How to perform CRUD operations and use relationships with SQL.

SQL CRUD

CREATE TABLE

Used to create a new table in a database.

w3schools docs on CREATE TABLE

PRIMARY KEY is a unique identifier for table.

NOT NULL means it is required to have a value or you can't create a row.

Example:

CREATE TABLE products (
id INT NOT NULL,
name STRING,
price MONEY,
PRIMARY KEY (ID)
);

INSERT INTO

Used to insert new records in a table.

w3schools docs on INSERT INTO

Examples:

INSERT INTO products
VALUES (1, "Pen", 1.20);
INSERT INTO products (id, name)
VALUES (2, "Pencil");

SELECT

Used to select data from a database. The data returned is stored in a result table, called the result-set.

w3schools docs on SELECT

Get specific columns with SELECT * FROM products or SELECT name, price FROM products.

Get rows using WHERE condition.

Example:

SELECT name, price FROM products WHERE name="Pen";

UPDATE

Used to modify the existing records in a table.

w3schools docs on UPDATE

danger

Make sure to use WHERE otherwise all records will be updated!

Example:

UPDATE products SET price = 1.3 WHERE name = "Pen";

ALTER TABLE

Used to add, delete, or modify columns in an existing table. Also used to add and drop various constraints on an existing table.

w3schools docs on ALTER TABLE

Example:

ALTER TABLE products ADD stock INT;

DELETE FROM

Used to delete existing records in a table.

w3schools docs on DELETE

danger

Make sure to use WHERE otherwise all records will be deleted!

Example:

DELETE FROM products WHERE id = 2;

SQL Relationships

FOREIGN KEY

FOREIGN KEY allows you to create links to other tables.

w3schools docs on FOREIGN KEY

Example:

CREATE TABLE orders (
id INT NOT NULL,
order_number INT,
customer_id INT,
product_id INT,
PRIMARY KEY (id),
FOREIGN KEY (customer_id) REFERENCES customers(id),
FOREIGN KEY (product_id) REFERENCES products(id)
);

INNER JOIN

INNER JOIN keyword selects records that have matching values in both tables.

w3schools docs on INNER JOIN

Example:

SELECT orders.order_number, customers.first_name, customers.last_name, customers.address
FROM orders
INNER JOIN customers ON orders.customer_id = customers.id;